﻿using System.Collections.Generic;

namespace WeWork.SDK.Framework.Entitys
{
    /// <summary>
    /// 外部联系人的企业成员
    /// </summary>
    public class FollowUserInfo
    {
        /// <summary>
        /// 添加了此外部联系人的企业成员userid
        /// </summary>
        public string userid { set; get; } = string.Empty;
        /// <summary>
        /// 该成员对此外部联系人的备注
        /// </summary>
        public string remark { set; get; } = string.Empty;
        /// <summary>
        /// 该成员对此外部联系人的描述
        /// </summary>
        public string description { set; get; } = string.Empty;
        /// <summary>
        /// 该成员添加此外部联系人的时间
        /// </summary>
        public long createtime { set; get; }
        /// <summary>
        /// 该成员对此微信客户备注的企业名称（仅微信客户有该字段）
        /// </summary>
        public string remark_corp_name { set; get; } = string.Empty;
        /// <summary>
        /// 该成员对此客户备注的手机号码，代开发自建应用需要管理员授权才可以获取，第三方不可获取，上游企业不可获取下游企业客户该字段
        /// </summary>
        public string[] remark_mobiles { set; get; }
        /// <summary>
        /// 该成员添加此客户的来源，具体含义详见来源定义
        /// </summary>
        public int add_way { set; get; }
        /// <summary>
        /// 该成员添加此客户的来源add_way为10时，对应的视频号信息
        /// JSON  "wechat_channels": { "nickname": "视频号名称", "source": 1 }
        /// </summary>
        public WechatChannel wechat_channels { set; get; }
        /// <summary>
        /// 发起添加的userid，如果成员主动添加，为成员的userid；如果是客户主动添加，则为客户的外部联系人userid；如果是内部成员共享/管理员分配，则为对应的成员/管理员userid
        /// </summary>
        public string oper_userid { set; get; } = string.Empty;
        /// <summary>
        /// 该成员添加此外部联系人所打标签
        /// "tags":[{ "group_name":"标签分组名称", "tag_name":"标签名称", "tag_id":"etAJ2GCAAAXtWyujaWJHDDGi0mACHAAA", "type":1 , { "group_name":"标签分组名称", "tag_name":"标签名称", "type":2 }, { "group_name":"标签分组名称", "tag_name":"标签名称", "tag_id":"stAJ2GCAAAXtWyujaWJHDDGi0mACHAAA", "type":3 } ]
        /// follow_user.tags.group_name 该成员添加此外部联系人所打标签的分组名称（标签功能需要企业微信升级到2.7.5及以上版本）
        /// follow_user.tags.tag_name 该成员添加此外部联系人所打标签名称
        /// follow_user.tags.type 该成员添加此外部联系人所打标签类型, 1-企业设置，2-用户自定义，3-规则组标签
        /// follow_user.tags.tag_id 该成员添加此外部联系人所打企业标签的id，用户自定义类型标签（type= 2）不返回
        /// </summary>
        public List<FollowUserTag> tags { set; get; }
    }

    public class WechatChannel
    {
        /// <summary>
        /// 视频号名称
        /// </summary>
        public string nickname { set; get; } = string.Empty;
        /// <summary>
        /// 视频号添加场景，0-未知 1-视频号主页 2-视频号直播间 3-视频号留资服务（微信版本要求：iOS ≥ 8.0.20，Android ≥ 8.0.21，且添加时间不早于2022年4月21日。否则添加场景值为0）
        /// </summary>
        public int source { set; get; }
    }


    public class FollowUserTag
    {
        /// <summary>
        /// 该成员添加此外部联系人所打标签的分组名称（标签功能需要企业微信升级到2.7.5及以上版本）
        /// </summary>
        public string group_name { set; get; } = string.Empty;
        /// <summary>
        /// 该成员添加此外部联系人所打标签名称
        /// </summary>
        public string tag_name { set; get; } = string.Empty;
        /// <summary>
        /// 该成员添加此外部联系人所打标签类型, 1-企业设置，2-用户自定义，3-规则组标签
        /// </summary>
        public int type { set; get; }
        /// <summary>
        /// 该成员添加此外部联系人所打企业标签的id，用户自定义类型标签（type= 2）不返回
        /// </summary>
        public string tag_id { set; get; } = string.Empty;
    }
}
